package com.kewu.system.service;

import com.kewu.common.cons.file.FileType;
import io.minio.errors.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

public interface FileService {

    String uploadFile(String filetype, MultipartFile file) throws IOException, ServerException, InsufficientDataException, InternalException, InvalidResponseException, InvalidKeyException, NoSuchAlgorithmException, XmlParserException, ErrorResponseException;

    InputStream downloadFile(FileType filetype, String localFile);

    /**
     * 获取文件后缀
     *
     * @param filename
     * @return
     */
    default String getFileExtension(String filename) {
        if (filename == null) {
            return null; // 如果文件名是null，直接返回null
        }

        int dotIndex = filename.lastIndexOf('.');
        if (dotIndex == -1) {
            return ""; // 如果没有找到'.'，则没有后缀名，返回空字符串
        }

        if (dotIndex == 0) {
            // 处理文件名以'.'开头的情况（这通常不是有效的文件名，但根据需求可以返回空字符串或抛出异常）
            return "";
        }

        // 返回'.'后面的部分作为后缀名
        return filename.substring(dotIndex + 1);
    }
}
